﻿using System;

namespace IMaverick.Physics
{
    public class Angle : Dimension<Angle>
    {
        static Angle()
        {
            InitializeOrdersOfMagnitude("°");
            Units.Add(new Unit { Factor =  360 / 2 * Convert.ToDecimal(Math.PI), Name = "rad" });
            Units.Add(new Unit { Factor = 3.6m / 4, Name = "gon" });
            Units.Add(new Unit { Factor = 3.6m / 2.56m, Name = "brad" });
        }

        public Angle() : base() { }
        private Angle(Unit unit) : base(unit) { }

        public static Angle Degree { get { return new Angle(); } }
        public static Angle Radian { get { return new Angle(Units["rad"]); } }
        public static Angle Grade { get { return new Angle(Units["gon"]); } }
        public static Angle Brad { get { return new Angle(Units["brad"]); } }
    }
}
